<?php

/**
 * Объект
 */
class Object extends ObjectEntity implements iObject {
	
	private $id = 0;
	
	/**
	 * Конструктор
	 * @param Type $oType тип объекта
	 * @param integer $id
	 */
	public function __construct (Type $oType, $id = 0) {
		parent::__construct ($oType);
		
		$this->id = (int) $id;		
	}
	
	/**
	 * Возвращает id объекта
	 * @return integer
	 */
	public function getId () {
		return $this->id;
	}
	
	/**
	 * Устанавливает id объекта
	 * @param integer $id
	 * @return void
	 */
	public function setId ($id) {
		$this->id = (int) $id;
	}
	
	/**
	 * Сохраняет измененные значения полей объекта
	 * @return boolean
	 */
	public function save () {
		return ObjectsController::getInstance()->saveObject ($this);
	}
	
	/**
	 * Удаляет объект
	 * @return boolean
	 */
	public function delete () {
		return ObjectsController::getInstance()->deleteObject ($this);
	}
	
	/**
	 * Создает запись об объекте в БД
	 * @return boolean
	 */
	public function createNew () {
		return ObjectsController::getInstance()->createNewObject ($this);
	}

}